home *** CD-ROM | disk | FTP | other *** search
- package sun.tools.javadoc;
-
- import java.io.File;
- import java.io.IOException;
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.Vector;
- import sun.tools.java.ClassDeclaration;
- import sun.tools.java.ClassDefinition;
- import sun.tools.java.ClassFile;
- import sun.tools.java.ClassPath;
- import sun.tools.java.Constants;
- import sun.tools.java.FieldDefinition;
- import sun.tools.java.Identifier;
- import sun.tools.java.Package;
- import sun.tools.javac.BatchEnvironment;
- import sun.tools.javac.SourceClass;
- import sun.tools.tree.Node;
-
- public final class Main implements Constants {
- public static final String program = "javadoc";
- public static BatchEnvironment env;
- public static File destDir;
- public static DocumentationGenerator generator;
- public static boolean showAuthors;
- public static boolean showVersion;
- public static boolean showIndex = true;
- public static boolean showTree = true;
-
- static void error(String var0) {
- System.out.println("javadoc: " + var0);
- if (env != null) {
- ++env.nerrors;
- }
-
- }
-
- static void exit() {
- byte var0 = 0;
- if (env == null) {
- var0 = 1;
- } else {
- env.flushErrors();
- if (env.nerrors > 0) {
- System.out.print(env.nerrors);
- if (env.nerrors > 1) {
- System.out.print(" errors");
- } else {
- System.out.print(" error");
- }
-
- if (env.nwarnings > 0) {
- System.out.print(", " + env.nwarnings);
- if (env.nwarnings > 1) {
- System.out.print(" warnings");
- } else {
- System.out.print(" warning");
- }
- }
-
- System.out.println();
- var0 = 1;
- } else if (env.nwarnings > 0) {
- System.out.print(env.nwarnings);
- if (env.nwarnings > 1) {
- System.out.println(" warnings");
- } else {
- System.out.println(" warning");
- }
- }
- }
-
- System.exit(var0);
- }
-
- static void usage() {
- System.out.println("use: javadoc [flags]* [class | package]*");
- System.out.println("\t-version Include the version field");
- System.out.println("\t-author Include the author field");
- System.out.println("\t-sourcepath <directories separated by colons>");
- System.out.println("\t Directories to find class source");
- System.out.println("\t-classpath <directories separated by colons>");
- System.out.println("\t Synonym for -sourcepath");
- System.out.println("\t-doctype <type> Documentation type to generate");
- System.out.println("\t <type>=html or mif. html default");
- System.out.println("\t-noindex Do not generate index of all methods and fields");
- System.out.println("\t-notree Do not generate class hierarchy");
- }
-
- public static void main(String[] var0) {
- String var1 = System.getProperty("java.class.path");
- int var2 = 4;
- long var3 = System.currentTimeMillis();
- Vector var5 = new Vector();
- Vector var6 = new Vector();
- String var7 = "HTML";
-
- for(int var8 = 0; var8 < var0.length; ++var8) {
- if (var0[var8].equals("-verbose")) {
- var2 |= 1;
- } else if (var0[var8].equals("-version")) {
- showVersion = true;
- } else if (!var0[var8].equals("-author") && !var0[var8].equals("-authors")) {
- if (!var0[var8].equals("-sourcepath") && !var0[var8].equals("-classpath")) {
- if (var0[var8].equals("-doctype")) {
- if (var8 + 1 < var0.length) {
- ++var8;
- var7 = var0[var8];
- } else {
- error("-docType requires argument");
- usage();
- exit();
- }
- } else if (var0[var8].equals("-noindex")) {
- showIndex = false;
- } else if (var0[var8].equals("-notree")) {
- showTree = false;
- } else if (var0[var8].equals("-d")) {
- if (var8 + 1 < var0.length) {
- ++var8;
- destDir = new File(var0[var8]);
- if (!destDir.exists()) {
- error(destDir.getPath() + " does not exist");
- exit();
- }
- } else {
- error("-d requires argument");
- usage();
- exit();
- }
- } else if (var0[var8].startsWith("-")) {
- error("invalid flag: " + var0[var8]);
- usage();
- exit();
- } else if (var0[var8].endsWith(".java") && var0[var8].indexOf(46) == var0[var8].length() - 5) {
- var6.addElement(var0[var8]);
- } else {
- var5.addElement(var0[var8]);
- }
- } else if (var8 + 1 < var0.length) {
- ++var8;
- var1 = var0[var8];
- } else {
- error(var0[var8] + " requires argument");
- usage();
- exit();
- }
- } else {
- showAuthors = true;
- }
- }
-
- if (var5.size() == 0 && var6.size() == 0) {
- error("No packages or classes specified.");
- usage();
- exit();
- }
-
- if (var1 == null) {
- var1 = ".";
- }
-
- ClassPath var9 = new ClassPath(var1);
- env = new BatchEnvironment(var9);
- BatchEnvironment var10000 = env;
- var10000.flags |= var2;
-
- try {
- Class var10 = Class.forName("sun.tools.javadoc." + var7 + "DocumentationGenerator");
- generator = ((DocumentationGenerator)var10.newInstance()).init();
- } catch (Exception var23) {
- System.out.println("Cannot generate " + var7 + " documentation");
- return;
- }
-
- try {
- Enumeration var28 = var6.elements();
-
- while(var28.hasMoreElements()) {
- File var11 = new File((String)var28.nextElement());
-
- try {
- env.parseFile(new ClassFile(var11));
- } catch (IOException var22) {
- env.error(0, "cant.read", var11.getPath());
- }
- }
-
- var6 = new Vector();
- Enumeration var29 = env.getClasses();
-
- while(var29.hasMoreElements()) {
- ClassDeclaration var12 = (ClassDeclaration)var29.nextElement();
- if (var12.isDefined() && var12.getClassDefinition() instanceof SourceClass) {
- var6.addElement(var12.getClassDefinition());
- }
- }
-
- Hashtable var30 = new Hashtable();
- Enumeration var13 = var5.elements();
-
- while(var13.hasMoreElements()) {
- Identifier var14 = Identifier.lookup((String)var13.nextElement());
- Package var15 = new Package(var9, var14);
- System.out.println("Loading source files for " + var14);
- Enumeration var16 = var15.getSourceFiles();
-
- while(var16.hasMoreElements()) {
- ClassFile var17 = (ClassFile)var16.nextElement();
-
- try {
- env.parseFile(var17);
- } catch (IOException var21) {
- env.error(0, "cant.read", var17.getPath());
- }
- }
-
- Enumeration var34 = env.getClasses();
-
- while(var34.hasMoreElements()) {
- ClassDeclaration var18 = (ClassDeclaration)var34.nextElement();
- ClassDefinition var19 = var18.getClassDefinition();
- if (var19 != null && var30.get(var18) == null) {
- for(FieldDefinition var20 = var19.getFirstField(); var20 != null; var20 = var20.getNextField()) {
- if (var20.isMethod() && var20.getValue() != null) {
- var20.setValue((Node)null);
- }
- }
-
- var30.put(var18, var18);
- }
- }
- }
-
- generator.genPackagesDocumentation(var5);
- Enumeration var31 = var5.elements();
-
- while(var31.hasMoreElements()) {
- Identifier var32 = Identifier.lookup((String)var31.nextElement());
- generator.genPackageDocumentation(var32);
- }
-
- Enumeration var33 = var6.elements();
-
- while(var33.hasMoreElements()) {
- generator.genClassDocumentation((ClassDefinition)var33.nextElement(), (ClassDeclaration)null, (ClassDeclaration)null);
- }
-
- if (showIndex) {
- System.out.println("Generating index");
- generator.genFieldIndex();
- }
-
- if (showTree) {
- System.out.println("Generating tree");
- generator.genClassTree();
- }
- } catch (Error var24) {
- ((Throwable)var24).printStackTrace();
- env.error(0, "fatal.error");
- env.flushErrors();
- System.exit(1);
- } catch (Exception var25) {
- ((Throwable)var25).printStackTrace();
- env.error(0, "fatal.exception");
- env.flushErrors();
- System.exit(1);
- }
-
- if (env.verbose()) {
- var3 = System.currentTimeMillis() - var3;
- System.out.println("[done in " + var3 + "ms]");
- }
-
- exit();
- }
- }
-